num-modular
A generic implementation of integer division and modular arithmetics in Rust. It provide basic operators and an type to represent integers in a modulo ring. Specifically the following features are supported:
- Common modular arithmetics:
add
,sub
,mul
,div
,neg
,double
,square
,inv
,pow
- Optimized modular arithmetics in Montgomery form
- Optimized modular arithmetics with pseudo Mersenne primes as moduli
- Fast integer divisibility check
- Legendre, Jacobi and Kronecker symbols
It also support various integer type backends, including primitive integers and num-bigint
. Note that this crate also supports [no_std]
. To enable std
related functionalities, enable the std
feature of the crate.